\chardef\catamp=\the\catcode‘\ \catcode‘\1=1

% size of sum and product circles \def\cradius{0.08

% \bdot % big dot \def\bdot{\fcir f:0 r:0.02

% centred, stacked items \def\hcp#1{$\vcenter{\halign{\hss ##\hss\cr #1\crcr$

% left justified, stacked items \def\hlp#1{$\vcenter{\halign{##\hss\cr #1\crcr$ \ % right justified, stacked items \def\hrp#1{$\vcenter{\halign{\hss ##\cr #1\crcr$

% signal labels - Top text, Bottom text, Left text, Right text, % and Center text \def\Ttext#1{\bsegment \textref h:C v:B \htext (0 +0.06){\hcp{#1 \esegment \def\Btext#1{\bsegment \textref h:C v:T \htext (0 -0.06){\hcp{#1 \esegment \def\Ltext#1{\bsegment \textref h:R v:C \htext (-0.06 0){\hrp{#1 \esegment \def\Rtext#1{\bsegment \textref h:L v:C \htext (+0.06 0){\hlp{#1 \esegment \def\Ctext#1{\bsegment \textref h:C v:C \htext{\hcp{#1 \esegment

% ruled box (horizontal) with centered label, % position set to the end of the box % \Fbox W H text \def\Fbox#1#2#3{\bsegment \bsegment \setsegscale 0.5 \textref h:C v:C \htext (#1 0){\hcp{#3 \esegment \setsegscale 0.5 \lvec (0 #2) \setsegscale 1 \rlvec (#1 0) \rlvec (0 -#2) \rlvec (-#1 0) \lvec (0 0) \savepos (#1 0)(*ex *ey) \esegment \move (*ex *ey)

% ruled box (vertical) with centered label, position set to the end of the box % \Gbox W H text \def\Gbox#1#2#3{\bsegment \bsegment \setsegscale 0.5 \textref h:C v:C \htext (0 #2){\hcp{#3 \esegment \setsegscale 0.5 \lvec (#1 0) \setsegscale 1 \rlvec (0 #2) \rlvec (-#1 0) \rlvec (0 -#2) \lvec (0 0) \savepos (0 #2)(*ex *ey) \esegment \move (*ex *ey)

% ruled triangle (horizontal) with centered label, % position set to the end of the box % \Ftri W H text \def\Ftri#1#2#3{\bsegment \bsegment \setsegscale 0.3333 \textref h:C v:C \htext (#1 0){\hcp{#3 \esegment \bsegment \savepos (#1 0)(*ex *ey) \esegment \setsegscale 0.5 \lvec (0 #2) \setsegscale 1 \lvec (#1 0) \setsegscale 0.5 \lvec (0 -#2) \lvec (0 0) \esegment \move (*ex *ey)

% \pluss % plus sign \def\pluss {\bsegment \setsegscale {\cradius \move (-0.5 0) \lvec (+0.5 0) \move (0 -0.5) \lvec (0 +0.5) \esegment

% \minuss % minus sign \def\minuss {\bsegment \setsegscale {\cradius \move (-0.5 0) \lvec (+0.5 0) \esegment % \mults % multiplication sign \def\mults {\bsegment \setsegscale {\cradius \realmult \cradius {0.354 \tmpa \move (-0.354 -0.354) \lvec (+0.354 +0.354) \move (-0.354 +0.354) \lvec (+0.354 -0.354) \esegment

% \pcir % circle of given radius with a plus sign \def\pcir {\lcir r:{\cradius \pluss

% \mcir % circle of given radius with a multiplication sign \def\mcir {\lcir r:{\cradius \mults

% \putn, \putnne, etc % places text at an offset from the center of a circle, with % the position of the text specified in compass directions \def\puttext (#1 #2)#3{\bsegment \setsegscale {\cradius \textref h:C v:C \htext (#1 #2){#3 \esegment \def\putn #1{\puttext ( 0 +2 ){#1 \def\putnne #1{\puttext (+1.2 +1.7){#1 \def\putene #1{\puttext (+1.7 +1.2){#1 \def\putese #1{\puttext (+1.7 -1.2){#1 \def\putsse #1{\puttext (+1.2 -1.7){#1 \def\puts #1{\puttext ( 0 -2 ){#1 \def\putssw #1{\puttext (-1.2 -1.7){#1 \def\putwsw #1{\puttext (-1.7 -1.2){#1 \def\putwnw #1{\puttext (-1.7 +1.2){#1 \def\putnnw #1{\puttext (-1.2 +1.7){#1

% \avectoc % arrow vector to a circle \def\avectoc (#1 #2){\currentpos \xa\ya \cossin ({\xa \ya)(#1 #2)\cosa\sina \savepos (#1 #2)(*tx *ty)% \bsegment \move (*tx *ty)% \setsegscale {\cradius \rmove ({-\cosa -\sina)% \savecurrpos (*ex *ey)% \esegment \avec (*ex *ey)% \move (#1 #2) % \avecfrc % arrow vector from a circle \def\avecfrc (#1 #2){\currentpos \xa\ya \cossin ({\xa \ya)(#1 #2)\cosa\sina \bsegment \setsegscale {\cradius \move ({\cosa \sina)% \savecurrpos (*ex *ey)% \esegment \move (*ex *ey)% \avec (#1 #2) % \avecfrctoc % arrow vector from a circle to a circle \def\avecfrctoc (#1 #2){\currentpos \xa\ya \cossin ({\xa \ya)(#1 #2)\cosa\sina \bsegment \setsegscale {\cradius \move ({\cosa \sina)% \savecurrpos (*ex *ey)% \esegment \move (*ex *ey)% \avectoc (#1 #2) % \lvecfrc % line vector from a circle \def\lvecfrc (#1 #2){\currentpos \xa\ya \cossin ({\xa \ya)(#1 #2)\cosa\sina \bsegment \setsegscale {\cradius \move ({\cosa {\sina)% \savecurrpos (*ex *ey)% \esegment \move (*ex *ey)% \lvec (#1 #2)

\catcode‘\\=catamp


This document was generated on January 31, 2023 using texi2html 5.0.